﻿#region copyright
//<copyright>
// Copyright(C) 2012 TrackerRealm Corporation
// This file is part of the open source project - Jazz. http://jazz.codeplex.com
// 
// Jazzfire is open software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License (AGPL) as published by the Free Software Foundation, version 3 of the License.
// 
// Jazzfire is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License (AGPL) for more details.
// 
// You should have received a copy of the GNU General Public License along with Jetfire.  If not, see <http://www.gnu.org/licenses/>.
//
// REMOVAL OF THIS NOTICE IS VIOLATION OF THE COPYRIGHT. 
//</copyright>
#endregion
# region using
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using TrackerRealm.Jazz.Client;
using TrackerRealm.Jazz.Client.Custom;
# endregion

namespace TrackerRealm.Jazz.WindowsForm
{
    public partial class FormNamePrompt : Form
    {
        # region Constructor
        ClientNexus nexus = null;
        jMethodInfo mi = null;

        public FormNamePrompt(ClientNexus nexus, jMethodInfo mi)
        {
            this.nexus = nexus;
            this.mi = mi;
            InitializeComponent();
            if (this.mi == null)
                return;
            this.buttonOk.Click += new EventHandler(buttonOk_Click);
            this.buttonCancel.Click += new EventHandler(buttonCancel_Click);
            this.textBoxName.KeyDown += new KeyEventHandler(textBoxName_KeyDown);
        }
        # endregion
        # region Event Handlers
        void buttonOk_Click(object sender, EventArgs e)
        {
            this.CreateObject(this.textBoxName.Text);
        }
        void textBoxName_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode != Keys.Enter)
                return;
            this.CreateObject(this.textBoxName.Text);
        }
        void CreateObject(string name)
        {
            if (name == String.Empty)
            {
                this.labelMessage.Text = "Enter name";
                return;
            }
            Creator creator = new Creator(this.nexus);
            mi.Execute(new object[] { name });
            this.Close();
        }
        void buttonCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        # endregion
    }
}